//
// Description: 874. 筛法求欧拉函数
// Created by Loading on 2022/5/25.
//

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 1e6 + 10;

typedef long long LL;

// true 为合数，false 为质数
bool st[N];
// 质数表
int primes[N], cnt = 0;

LL get_eulers(int n) {
    // 欧拉函数
    int phi[n + 1];
    phi[1] = 1;
    for (int i = 2; i <= n; ++i) {
        // i 为质数
        if (!st[i]) {
            // 质数的欧拉函数为 i - 1
            phi[i] = i - 1;
            primes[cnt++] = i;
        }
        for (int j = 0; primes[j] <= n / i; ++j) {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) {
                // primes[j] 是 i 的最小质因子，所以 phi[primes[j] * i] 是 phi[i] 的 primes[j] 倍
                phi[primes[j] * i] = primes[j] * phi[i];
                break;
            }
            // 若 i % primes[j] != 0，则 phi[primes[j] * i] = (primes[j] - 1) * phi[i]
            phi[primes[j] * i] = (primes[j] - 1) * phi[i];
        }
    }

    LL res = accumulate(phi + 1, phi + n + 1, 0ll);

    return res;
}

int main() {
    int n;
    cin >> n;

    auto res = get_eulers(n);
    cout << res << endl;

    return 0;
}